class dct2d
{
  public:
    inline dct2d( const uword in_N );
    
    inline mat get_coeff_matrix(const mat in_frame);
    inline mat get_coeff_overlap_7(const mat in_frame);
    inline mat get_coeff_overlap_6(const mat in_frame);//Overlapping 6 pixels (15 features)
    inline mat reconst_frame();

  private:
    
    const uword N;
    mat		frame;
    mat Cuv;
    double mean_frame;
    double std_frame;;
    
    inline mat  calc_dct_one_block (const uword ri, const uword rf, const uword ci, const uword cf);
    inline mat  calc_Idct_one_block(const uword ri, const uword rf, const uword ci, const uword cf);
    inline mat  calc_dct_one_block16 (const uword ri, const uword rf, const uword ci, const uword cf);
    
    
};
